import { defineConfig, type UserConfigExport } from '@tarojs/cli'
import TsconfigPathsPlugin from 'tsconfig-paths-webpack-plugin'
import devConfig from './dev'
import prodConfig from './prod'

// https://taro-docs.jd.com/docs/next/config#defineconfig-辅助函数
// export default defineConfig<'vite'>(async (merge, { command, mode }) => {
//   const baseConfig: UserConfigExport<'vite'> = {
//     projectName: 'mineApp',
//     date: '2024-12-23',
//     designWidth: 750,
//     deviceRatio: {
//       640: 2.34 / 2,
//       750: 1,
//       375: 2,
//       828: 1.81 / 2
//     },
//     sourceRoot: 'src',
//     outputRoot: 'dist',
//     plugins: [
//        '@taro-hooks/plugin-react' 
//     ],
//     defineConstants: {
//     },
//     copy: {
//       patterns: [
//       ],
//       options: {
//       }
//     },
//     framework: 'react',
//     compiler: 'vite',
//     mini: {
//       postcss: {
//         pxtransform: {
//           enable: true,
//           config: {

//           }
//         },
//         cssModules: {
//           enable: false, // 默认为 false，如需使用 css modules 功能，则设为 true
//           config: {
//             namingPattern: 'module', // 转换模式，取值为 global/module
//             generateScopedName: '[name]__[local]___[hash:base64:5]'
//           }
//         }
//       },
//     },
//     h5: {
//       publicPath: '/',
//       staticDirectory: 'static',
//       miniCssExtractPluginOption: {
//         ignoreOrder: true,
//         filename: 'css/[name].[hash].css',
//         chunkFilename: 'css/[name].[chunkhash].css'
//       },
//       postcss: {
//         autoprefixer: {
//           enable: true,
//           config: {}
//         },
//         cssModules: {
//           enable: false, // 默认为 false，如需使用 css modules 功能，则设为 true
//           config: {
//             namingPattern: 'module', // 转换模式，取值为 global/module
//             generateScopedName: '[name]__[local]___[hash:base64:5]'
//           }
//         }
//       },
//     },
//     rn: {
//       appName: 'taroDemo',
//       postcss: {
//         cssModules: {
//           enable: false, // 默认为 false，如需使用 css modules 功能，则设为 true
//         }
//       }
//     }
//   }
//   if (process.env.NODE_ENV === 'development') {
//     // 本地开发构建配置（不混淆压缩）
//     return merge({}, baseConfig, devConfig)
//   }
//   // 生产构建配置（默认开启压缩混淆等）
//   return merge({}, baseConfig, prodConfig)
// })

export default defineConfig<'vite'>(async (merge, { command, mode }) => {
  const baseConfig: UserConfigExport<'vite'> = {
    projectName: 'Group_front',
    date: '2024-12-22',
    designWidth: 375,  // 将设计宽度改为 375px
    deviceRatio: {
      640: 2.34 / 2,
      750: 1,
      375: 1,  // 如果你希望在设备宽度为 375px 时保持 2:1 比例
      828: 1.81 / 2
    },
    sourceRoot: 'src',
    outputRoot: 'dist',
    plugins: [],
    defineConstants: {
    },
    copy: {
      patterns: [],
      options: {}
    },
    framework: 'react',
    compiler: 'vite',
    mini: {
      postcss: {
        pxtransform: {
          enable: true,
          config: {}
        },
        cssModules: {
          enable: false,
          config: {
            namingPattern: 'module',
            generateScopedName: '[name]__[local]___[hash:base64:5]'
          }
        }
      },
    },
    h5: {
      publicPath: '/',
      staticDirectory: 'static',
      miniCssExtractPluginOption: {
        ignoreOrder: true,
        filename: 'css/[name].[hash].css',
        chunkFilename: 'css/[name].[chunkhash].css'
      },
      postcss: {
        autoprefixer: {
          enable: true,
          config: {}
        },
        cssModules: {
          enable: false,
          config: {
            namingPattern: 'module',
            generateScopedName: '[name]__[local]___[hash:base64:5]'
          }
        }
      },
    },
    rn: {
      appName: 'taroDemo',
      postcss: {
        cssModules: {
          enable: false,
        }
      }
    }
  }

  if (process.env.NODE_ENV === 'development') {
    return merge({}, baseConfig, devConfig)
  }

  return merge({}, baseConfig, prodConfig)
})

